import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
const store = new Vuex.Store({
	state: {
		// 公共参数 状态栏 IOS底部距离等
		COMMON_VAR: {
			website: '笆林智能',
			integral_name: '积分',
			coin_name: '金币',
			// 隐私权限配置
			permission_config: {
				camera: {
					tips_tt: '开启相机权限',
					android: {
						system_key: 'android.permission.CAMERA',
						check_tips: '应用需要获取相机权限以支持拍照，扫码等功能',
						reject_tips: '相机权限未开启，使用相机功能需要该权限，点击【去开启】完成设置',
					},
					ios: {
						system_key: 'camera',
						check_tips: '请在iPhone的"设置-奇迹牛-相机"中允许奇迹牛访问相机',
					},
				},
				photoLibrary: {
					tips_tt: '开启相册权限',
					android: {
						system_key: 'android.permission.READ_EXTERNAL_STORAGE',
						check_tips: '应用需要获取相册权限以支持选择照片上传功能',
						reject_tips: '相册权限未开启，使用相册功能需要该权限，点击【去开启】完成设置',
					},
					ios: {
						system_key: 'photoLibrary',
						check_tips: '请在iPhone的"设置-奇迹牛-照片"中允许奇迹牛访问照片',
					},
				},
				location: {
					tips_tt: '开启位置权限',
					android: {
						system_key: 'android.permission.ACCESS_FINE_LOCATION',
						check_tips: '应用需要获取位置权限以支持骑行，导航等功能',
						reject_tips: '位置权限未开启，使用骑行或导航功能需要该权限，点击【去开启】完成设置',
					},
					ios: {
						system_key: 'location',
						check_tips: '请在iPhone的"设置-奇迹牛-位置"中允许奇迹牛访问位置',
					},
				},
				bluetooth: {
					tips_tt: '开启蓝牙权限',
					android: {
						system_key: 'android.permission.BLUETOOTH_SCAN',
						system_key_list: ['android.permission.BLUETOOTH_SCAN', 'android.permission.BLUETOOTH_CONNECT'],
						check_tips: '应用需要获取蓝牙权限以支持连接到附近的设备，使用蓝牙功能',
						reject_tips: '蓝牙权限未开启，发现并连接到蓝牙需要开启附近的设备权限，点击【去开启】完成设置',
					},
					ios: {
						system_key: 'bluetooth',
						check_tips: '请在iPhone的"设置-奇迹牛-蓝牙"中允许奇迹牛访问蓝牙',
					},
				},
				bluetooth_location: {
					tips_tt: '开启位置权限',
					android: {
						system_key: 'android.permission.ACCESS_FINE_LOCATION',
						check_tips: '应用需要获取位置权限以扫描附近的蓝牙设备',
						reject_tips: '位置权限未开启，扫描附近的蓝牙设备需要该权限，点击【去开启】完成设置',
					},
					ios: {
						system_key: 'location',
						check_tips: '请在iPhone的"设置-奇迹牛-位置"中允许奇迹牛访问位置',
					},
				},
				callphone: {
					tips_tt: '开启拨打电话权限',
					android: {
						system_key: 'android.permission.CALL_PHONE',
						check_tips: '应用需要获取拨打电话权限以支持联系客服，联系店家等功能。',
						reject_tips: '拨打电话权限未开启，联系客服和联系店家需要该权限，点击【去开启】完成设置',
					},
					ios: {
						system_key: '',
						check_tips: '',
					},
				},
				camera: {
					tips_tt: '开启访问相册权限',
					android: {
						system_key: 'android.permission.CAMERA',
						check_tips: '应用需要访问相册权限以支持上传图片、视频等功能。',
						reject_tips: '访问相册权限未开启，上传图片、视频需要该权限，点击【去开启】完成设置',
					},
					ios: {
						system_key: '',
						check_tips: '',
					},
				},
			},
			page_check_config: {
				// 校验规则
				head: {
					tips_null: '请上传您的头像',
				},

				name: {
					tips_null: '请输入您的姓名',
					tips_fail: '请输入正确的姓名',
					regular: 'check_name',
				},

				nickname: {
					tips_null: '请输入您的昵称',
				},

				phone: {
					tips_null: '请输入您的手机电话',
					tips_fail: '请输入正确的手机电话',
					regular: 'checkphone',
				},
				sn: {
					tips_null: '请输入数字',
					tips_fail: '请输入正确的数字',
					regular: 'check_sn',
				},
				pwd: {
					tips_null: '请输入您的密码',
				},
				con_pwd: {
					tips_null: '请确认您的密码',
				},
				contrast_pwd: {
					type: 'contrast_pwd',
					tips_fail: '请保证两次密码填写一致',
				},
				sfz: {
					tips_null: '请输入您的身份证',
					tips_fail: '请输入正确的身份证',
					regular: 'check_sfz',
				},
				ystk: {
					tips_null: '请阅读并同意笆林《用户协议》和《隐私协议》',
				},

				send_code_flag: {
					tips_null: '请发送验证码',
				},
				code: {
					tips_null: '请输入验证码',
					// regular: 'check_sfz'
				},
			},
			pay_way: {
				1: {
					title: 'app微信',
					show_tt: '微信支付',
					type: 'wxpay',
				},
				2: {
					title: '微信公众号',
					show_tt: '微信支付',
					type: 'wxpay',
				},
				3: {
					title: '微信小程序',
					show_tt: '微信支付',
					type: 'wxpay',
				},
				4: {
					title: 'app支付宝',
					show_tt: '支付宝',
					type: 'wxpay',
				},
				5: {
					title: 'H5支付宝',
					show_tt: '支付宝',
					type: 'wxpay',
				},
				6: {
					title: '零钱',
					show_tt: '零钱',
					type: 'wxpay',
				},
				7: {
					title: '积分',
					show_tt: '积分',
					type: 'wxpay',
				},
			},
			default_img: {
				car_cover: 'https://file.qijiniu.com/files/app/bg1.png',
				car_img: 'https://file.qijiniu.com/files/app/bg2.png',
				user_login_in: '/static/images/login_in.png',
				user_login_no: '/static/images/login_no.png',
				share_icon: 'https://file.qijiniu.com/share/share.png',
			},
			BLUETOOTH_DEVICE_LIST: [
				{
					UUID_WRITE_SCREEN: '0000FF02', // 写入指定UUID
					UUID_NOTIFY_SCREEN: '0000FF01', // 监听指定UUID
					UUID_PRIMARY_SERVICE: '0000FF00-0000-1000-8000-00805F9B34FB', // 扫描筛选主服务UUID
					bluetooth_device_type: 'device_battery',
					bluetooth_connect: false,
					bluetooth_reconnect: false, // 重连
					bluetooth_deviceId: '',
					bluetooth_device_mac: '',
					bluetooth_device_name: '-',
					// 芯片类型  0 T1方案 1 凹凸7712 2 新塘松下49522 3 中颖309  4 中颖303 5 集澈DC10XX 6 OZ3714
					bluetooth_chip_type: 0,
					bluetooth_serviceId: '',
					bluetooth_writeCharacteristicId: '',
					bluetooth_notifyCharacteristicId: '',
					bluetooth_device_info: {}, //设备数据名称信号id等
					bluetooth_serverList: [],
					bluetooth_break: 'auto_break',
				},

				{
					UUID_WRITE_SCREEN: '0000FFF4', // 写入指定UUID
					UUID_NOTIFY_SCREEN: '0000FFF6', // 监听指定UUID
					UUID_PRIMARY_SERVICE: '0000FFE0-0000-1000-8000-00805F9B34FB', // 扫描筛选主服务UUID
					bluetooth_device_type: 'device_car',
					bluetooth_connect: false,
					bluetooth_reconnect: false, // 重连
					bluetooth_deviceId: '',
					bluetooth_device_mac: '',
					bluetooth_device_name: '-',
					bluetooth_chip_type: 0,
					bluetooth_serviceId: '',
					bluetooth_writeCharacteristicId: '',
					bluetooth_notifyCharacteristicId: '',
					bluetooth_device_info: {}, //设备数据名称信号id等
					bluetooth_serverList: [],
					bluetooth_break: 'auto_break',
				},
			],
		},
		// 用户信息
		USER_MSG: {},
		USER_LOGIN: false,
		// 蓝牙设备
		BLUETOOTH_INIT: false,
		BLUETOOTH_DEVICE_CONFIG: {},
		CAR_INFO_CONFIG: {
			bike_cover: 'https://file.qijiniu.com/files/app/bg1.png',
			bike_image: 'https://file.qijiniu.com/files/app/bg2.png',
			bike_model: '暂无设备',
			car_show_name: '--',
			refresh_time: '--',
			pre_show: 0,
			bike_status: -1,
			car_show_type: '电量',
			car_show_type_icon: '/static/images/ele_icon.png',
			car_show_type_unit: '%',
			car_show_type_value: '--',
			bike_vin_max: 70,
			dev_soc: '--',
			dev_capacity: '--',
			dev_current: '--',
			dev_voltage: '--',
			dev_xuhang: '--',
			bike_vin: '--',
			xuhang: '--',
			latitude: 0,
			longitude: 0,
			bike_address: '暂无定位',
			name: '车辆位置',
			address: '暂无定位',
			controller_mode_name: '暂无模式',
			has_battery: false,
			refresh_time: '--',
			expire_day: '--',
			min_expire_day: '--',
			expire_tips: '--',
			expire_time: '--',
			show_server_tips: '--',
		},
		CAR_MYLIST: [],
	},
	mutations: {
		update_state_name(state, data) {
			let { state_name, state_value } = data;
			state[state_name] = state_value;
		},
		// 公共设置 通过state_name 分别设置对应的state值
		// 如通过state_name: BLUETOOTH_DEVICE_CONFIG，USER_MSG
		update_state_config(state, config) {
			let { state_name, data } = config;
			if (Object.keys(data).length > 0) {
				for (var key in data) {
					// console.log(data, 'data');
					if (data.hasOwnProperty(key)) {
						Vue.set(state[state_name], key, data[key]);
					}
				}
			} else {
				state[state_name] = {};
			}
		},
	},
	actions: {
		store_set_state({ commit }, data) {
			commit('update_state_name', data);
		},
		store_set_state_config({ commit }, data) {
			commit('update_state_config', data);
		},
	},
	getters: {},
});
export default store;
